class AlmacenController < ApplicationController

  def index
    if mando_medio?
      supervision_almacenes
      render :action => :supervision_almacenes
      
    else
      @almacenes = Almacen.paginate :page => params[:page], :per_page => DEFAULT_PER_PAGE, :order => 'nombre'
    end
  end

  def supervision_almacenes
    almacenes = Array.new
    
    mando_medio = Ejecutivo.find(session[:user])
    personal = mando_medio.all_active_children
    
    personal.each do |p|
      almacenes << Almacen.find(p.almacen_id, :conditions => {:status_id => 1}) unless p.almacen_id == 1
    end
    
    almacenes.uniq!
    @almacenes = almacenes.paginate :page => params[:page], :per_page => DEFAULT_PER_PAGE, :order => 'nombre'
  end
  
  def existencias
    almacen = Almacen.find(params[:id])
    
    @existencias = almacen.existencias.paginate :page => params[:page], :per_page => DEFAULT_PER_PAGE, :order => 'producto_id'
    
  end

  def movimientos
    conditions = {}
    conditions[:almacen_id] = params[:id]
    
    @movimientos = MovimientoAlmacen.paginate :page => params[:page],
      :per_page => DEFAULT_PER_PAGE, :order => 'id', :conditions => conditions
    
  end
  
  def mostrar_movimiento
    @movimiento = MovimientoAlmacen.find(params[:id])
    
  end
  
  def new
    @almacen = Almacen.new
    @status = Catalogo.find_by_nombre('Status Items').entradas_catalogo
    
  end

  def create
    @almacen = Almacen.new(params[:almacen])
    @almacen.user_id = session[:user]
    
    if @almacen.save
      flash[:notice] = "El Almacen se creo correctamente"
      
      redirect_to :action => "index"
    else
      @status = Catalogo.find_by_nombre('Status Items').entradas_catalogo
      render :action => "new"
    end
  end
  
  def edit
    @almacen = Almacen.find(params[:id])
    @status = Catalogo.find_by_nombre('Status Items').entradas_catalogo

  end
  
  def update
    @almacen = Almacen.find(params[:id])
    
    if @almacen.update_attributes(params[:almacen])
      flash[:notice] = "Se guardo correctamente"
      redirect_to :action => "index"
    else
      @status = Catalogo.find_by_nombre('Status Items').entradas_catalogo
      render :action => "edit", :id => @almacen
      
    end
  end

  def show
    @almacen = Almacen.find(params[:id])
    
  end
end
